home *** CD-ROM | disk | FTP | other *** search
- if(!com) var com={};
- if(!com.seostatus) com.seostatus={};
-
- com.seostatus.gprAlg = function(){
- var pub = {};
- /************************************************************\
- *
- \************************************************************/
- pub.hexdec = function(str)
- {
- return parseInt(str,16);
- }
-
- /************************************************************\
- *
- \************************************************************/
- pub.zeroFill = function(a,b)
- {
- var z = pub.hexdec(80000000);
- if (z & a)
- {
- a = a>>1;
- a &= ~z;
- a |= 0x40000000;
- a = a>>(b-1);
- }
- else
- {
- a = a >> b;
- }
- return (a);
- }
-
- /************************************************************\
- *
- \************************************************************/
- pub.mix = function(a,b,c)
- {
- a -= b; a -= c; a ^= (pub.zeroFill(c,13));
- b -= c; b -= a; b ^= (a<<8);
- c -= a; c -= b; c ^= (pub.zeroFill(b,13));
- a -= b; a -= c; a ^= (pub.zeroFill(c,12));
- b -= c; b -= a; b ^= (a<<16);
- c -= a; c -= b; c ^= (pub.zeroFill(b,5));
- a -= b; a -= c; a ^= (pub.zeroFill(c,3));
- b -= c; b -= a; b ^= (a<<10);
- c -= a; c -= b; c ^= (pub.zeroFill(b,15));
- var ret = new Array((a),(b),(c));
- return ret;
- }
-
- /************************************************************\
- *
- \************************************************************/
- pub.GoogleCH = function(url,length)
- {
- var init = 0xE6359A60;
- if (arguments.length == 1)
- length = url.length;
- var a = 0x9E3779B9;
- var b = 0x9E3779B9;
- var c = 0xE6359A60;
- var k = 0;
- var len = length;
- var mixo = new Array();
- while(len >= 12)
- {
- a += (url[k+0] +(url[k+1]<<8) +(url[k+2]<<16) +(url[k+3]<<24));
- b += (url[k+4] +(url[k+5]<<8) +(url[k+6]<<16) +(url[k+7]<<24));
- c += (url[k+8] +(url[k+9]<<8) +(url[k+10]<<16)+(url[k+11]<<24));
- mixo = pub.mix(a,b,c);
- a = mixo[0]; b = mixo[1]; c = mixo[2];
- k += 12;
- len -= 12;
- }
- c += length;
- switch(len)
- {
- case 11:
- c += url[k+10]<<24;
- case 10:
- c+=url[k+9]<<16;
- case 9 :
- c+=url[k+8]<<8;
- case 8 :
- b+=(url[k+7]<<24);
- case 7 :
- b+=(url[k+6]<<16);
- case 6 :
- b+=(url[k+5]<<8);
- case 5 :
- b+=(url[k+4]);
- case 4 :
- a+=(url[k+3]<<24);
- case 3 :
- a+=(url[k+2]<<16);
- case 2 :
- a+=(url[k+1]<<8);
- case 1 :
- a+=(url[k+0]);
- }
- mixo = pub.mix(a,b,c);
- if (mixo[2] < 0)
- return (0x100000000 + mixo[2]);
- else
- return mixo[2];
- }
-
- /************************************************************\
- *
- \************************************************************/
- pub.strord = function(string)
- {
- var result = new Array();
- for(i=0;i<string.length;i++)
- {
- result[i] = string[i].charCodeAt(0);
- }
- return result;
- }
- /************************************************************\
- *
- \************************************************************/
- pub.c32to8bit = function(arr32)
- {
- var arr8 = new Array();
- for(i=0;i<arr32.length;i++)
- {
- for (bitOrder=i*4;bitOrder<=i*4+3;bitOrder++)
- {
- arr8[bitOrder]=arr32[i]&255;
- arr32[i]=pub.zeroFill(arr32[i], 8);
- }
- }
- return arr8;
- }
- /************************************************************\
- *
- \************************************************************/
- pub.myfmod = function(x,y)
- {
- var i = Math.floor(x/y);
- return (x - i*y);
- }
-
- /************************************************************\
- *
- \************************************************************/
- pub.GoogleNewCh = function(ch)
- {
- ch = (((ch/7) << 2) | ((pub.myfmod(ch,13))&7));
-
- prbuf = new Array();
- prbuf[0] = ch;
- for(i = 1; i < 20; i++) {
- prbuf[i] = prbuf[i-1]-9;
- }
- ch = pub.GoogleCH(pub.c32to8bit(prbuf), 80);
- return ch;
-
- }
-
- pub.gXMLHttpRequest;
- pub.glastpr;
-
-
-
- pub.gch = 0;
-
-
-
-
- /************************************************************\
- *
- \************************************************************/
- pub.setPagerankStatus = function()
- {
- var temp = pub.gXMLHttpRequest.responseText;
- if (temp){
-
- var foo = temp.match(/Rank_.*?:.*?:(\d+)/i);
-
- var pr = (foo) ? foo[1] : "-1";
- foo = temp.match(/FVN_.*?:.*?:(?:Top\/)?([^\s]+)/i);
- var cat = (foo) ? foo[1] : "n/a";
- var iscat = (cat=="n/a") ? "" : "cat";
- //alert (temp);
- pub.glastpr = pr;
-
- }
- else{
- //alert("temp was null!!!");
- pub.glastpr = 0;
- }
- var prBut = document.getElementById('changeMe');
- var prButSB = document.getElementById('SEOTB-PR-status');
- prBut.setAttribute("tooltiptext", "PageRank: "+pub.glastpr+"/10");
- prBut.setAttribute("image", "chrome://seostatus/skin/pr/Pagerank"+pub.glastpr+".jpg");
- prButSB.setAttribute("tooltiptext", "PageRank: "+pub.glastpr+"/10");
- prButSB.setAttribute("src", "chrome://seostatus/skin/pr/pr"+pub.glastpr+".png");
-
- }
-
- /************************************************************\
- *
- \************************************************************/
- /*function URLencode(sStr) {
- return escape(sStr).replace(/\+/g, '%2B').replace(/[ ]/g,'+').replace(/\//g,'%2F').replace(/~/g,'%7E');
- }
- */
- pub.URLencode = function(sStr)
- {
- return encodeURIComponent(sStr).replace(/\+/g,"%2B").replace(/\//g,"%2F");
- }
- /************************************************************\
- *
- \************************************************************/
- pub.initPagerankStatus = function(sentURL)
- {
-
- var prBut = document.getElementById('changeMe');
- var prButSB = document.getElementById('SEOTB-PR-status');
- prBut.setAttribute("tooltiptext", "PageRank: Computing...");
- prBut.setAttribute("image", "chrome://seostatus/skin/pr/aprThink.gif");
- prButSB.setAttribute("tooltiptext", "PageRank: Computing...");
- prButSB.setAttribute("src", "chrome://seostatus/skin/pr/prN.gif");
-
- var url = new String(sentURL);
- url = url.replace(/\?.*$/g,'?');
-
- var reqgr = "info:" + url;
- var reqgre = "info:" + pub.URLencode(url);
- pub.gch = pub.GoogleCH(pub.strord(reqgr));
- pub.gch = "6" + pub.GoogleNewCh(pub.gch);
-
- var querystring = "http://toolbarqueries.google.com/search?client=navclient-auto&ch=" + pub.gch + "&ie=UTF-8&oe=UTF-8&features=Rank:FVN&q=" + reqgre;
-
- pub.gXMLHttpRequest = new XMLHttpRequest();
- pub.gXMLHttpRequest.onload = pub.setPagerankStatus;
- pub.gXMLHttpRequest.open("GET", querystring);
- //alert("i am here just did GET");
- pub.gXMLHttpRequest.setRequestHeader("User-Agent","Mozilla/4.0 (compatible; GoogleToolbar 2.0.114-big; Windows XP 5.1)");
- pub.gXMLHttpRequest.send(null);
- //alert("i am here just did send");
-
-
- }
- return pub;
- }();
-